package com.crm.service.activityManager;

import com.alibaba.fastjson.JSONArray;
import com.crm.model.entity.activityManager.CustomerProductGiftActivity;
import com.crm.model.qo.activityManager.CustomerProductGiftActivityQO;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityContractVO;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityVO;
import com.crm.model.vo.activityManager.CustomerProductGiftDetailVO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author luojie
 * @date 2021/3/1 14:49
 */
public interface CustomerProductGiftActivityDbService {

    /**
     * 活动管理--赠品活动列表
     * @param productGiftActivityQO ---赠品列表查询条件
     * @param orderStr              ---赠品列表排序
     * @author yincuimei
     * @return
     */
    List<CustomerProductGiftActivityVO> selectCustomerProductGiftActivityVOList(CustomerProductGiftActivityQO productGiftActivityQO,String orderStr);

    /**
     * 赠品活动列表--(赠品活动上架时判断)根据赠品活动ID查询活动是否在有效期内
     * @param productGiftActivityId  ---赠品活动ID
     * @param nowDate                ---当前时间
     * @Author yincuimei
     * @return
     */
    Boolean selectGiftActivityIsInValidityPeriod(String productGiftActivityId,String nowDate);

    /**
     * 赠品活动列表--赠品活动上/下架操作
     * @param productGiftActivityId    ---赠品活动主键
     * @param giftShelfStatus          ---赠品活动上下架状态(0:上架;1:下架)
     * @param accountId                ---当前操作人账号ID
     * @Author yincuimei
     * @return
     */
    Boolean updateGiftActivityShelfStatus(String productGiftActivityId,String giftShelfStatus,String accountId);

    /***
     * 赠品活动列表--查看(产品类)赠品活动(关联会员产品)
     * 根据赠品活动ID查询赠品活动
     * @param productGiftActivityId ---赠品活动ID
     * @Author yincuimei
     * @return
     */
    CustomerProductGiftDetailVO selectMemberProductCategoryGiftActivityById(String productGiftActivityId);

    /***
     * 赠品活动列表--查看(产品类)赠品活动(关联非会员产品)
     * 根据赠品活动ID查询赠品活动
     * @param productGiftActivityId ---赠品活动ID
     * @Author yincuimei
     * @return
     */
    CustomerProductGiftDetailVO selectNonMemberProductCategoryGiftActivityById(String productGiftActivityId);

    /***
     * 赠品活动列表--查看(价格类)赠品活动
     * 根据赠品活动ID查询赠品活动
     * @param productGiftActivityId ---赠品活动ID
     * @Author yincuimei
     * @return
     */
    CustomerProductGiftDetailVO selectPriceCategoryGiftActivityById(String productGiftActivityId);

    /**
     * 赠品活动列表--删除赠品
     * @param customerProductGiftActivity
     * @Author yincuimei
     * @return
     */
    Boolean deleteCustomerProductActivityById(CustomerProductGiftActivity customerProductGiftActivity);

    /**
     * 活动管理-新增赠品
     * @param customerProductGiftActivity
     * @return
     */
    Boolean insertCustomerProductGiftActivity(CustomerProductGiftActivity customerProductGiftActivity);

    /**
     * 活动管理-新增赠品时判断有没有赠品名相同的数据
     * @param productGiftName
     * @return
     */
    Boolean selectCustomerProductGiftIsRepeat(String productGiftName,String productGiftId);

    /**
     * 根据赠品id查询赠品基本信息
     * @param productGiftActivityId
     * @return
     */
    CustomerProductGiftActivity selectProductGiftActivityById(String productGiftActivityId);

    /**
     * 更新赠品信息
     * @param customerProductGiftActivity
     * @return
     */
    Boolean editProductGiftActivity(CustomerProductGiftActivity customerProductGiftActivity);

    /**
     * 根据产品idList查询对应的赠品列表
     * @param selectProductGiftListByProductIdList 产品idList
     * @param price 价钱
     * @return
     */
    List<CustomerProductGiftActivityContractVO> selectProductGiftListByProductIdAndPrice(JSONArray selectProductGiftListByProductIdList, BigDecimal price);
}
